#pragma once
namespace logs
{
    class LogLevel
    {
    public:
        // 使用C++中的强类型枚举，使用时需要指定类域，避免重名冲突
        enum class Value
        {
            DEBUG, // 调试
            INFO,  // 提示
            WARN,  // 警告
            ERROR, // 错误
            FATAL, // 致命（程序终止）
            OFF    // 关闭
        };
        static const char* toString(LogLevel::Value val)
        {
            switch(val)
            {
                case LogLevel::Value::DEBUG: return "DEBUG";
                case LogLevel::Value::INFO: return "INFO";
                case LogLevel::Value::WARN: return "WARN";
                case LogLevel::Value::ERROR: return "ERROR";
                case LogLevel::Value::FATAL: return "FATAL";
                case LogLevel::Value::OFF: return "OFF";
            }
            return "UNKNOW";
        }
    };
}